<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: expr.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">expr.hpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions that deal with C-like expressions and built-in IDC language. </p>
<p>Functions marked <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab" title="Functions callable from any thread are marked with this keyword. ">THREAD_SAFE</a> may be called from any thread. No simultaneous calls should be made for the same variable. We protect only global structures, individual variables must be protected manually. </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classidc__value__t.html">idc_value_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to hold idc values.  <a href="classidc__value__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structidc__global__t.html">idc_global_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global idc variable.  <a href="structidc__global__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structext__idcfunc__t.html">ext_idcfunc_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element of functions table. See <a class="el" href="structidcfuncs__t.html#a8c9e1152c1cc8bb5c6df0540fb8429c2" title="Function table. ">idcfuncs_t::funcs</a>.  <a href="structext__idcfunc__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structidcfuncs__t.html">idcfuncs_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes an array of IDC functions.  <a href="structidcfuncs__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhighlighter__cbs__t.html">highlighter_cbs_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsyntax__highlighter__t.html">syntax_highlighter_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for syntax highligters.  <a href="structsyntax__highlighter__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structextlang__t.html">extlang_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">External language (to support third party language interpreters)  <a href="structextlang__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structextlang__visitor__t.html">extlang_visitor_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process all registered extlangs.  <a href="structextlang__visitor__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structidc__resolver__t.html">idc_resolver_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile text with IDC function(s).  <a href="structidc__resolver__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0719749dbe301226c063f2ed888a6006"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a0719749dbe301226c063f2ed888a6006">idcv_long</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v)</td></tr>
<tr class="memdesc:a0719749dbe301226c063f2ed888a6006"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert IDC variable to a long (32/64bit) number.  <a href="#a0719749dbe301226c063f2ed888a6006">More...</a><br /></td></tr>
<tr class="separator:a0719749dbe301226c063f2ed888a6006"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96c5e5798a769d283fd406091ec404ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a96c5e5798a769d283fd406091ec404ac">idcv_int64</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v)</td></tr>
<tr class="memdesc:a96c5e5798a769d283fd406091ec404ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert IDC variable to a 64bit number.  <a href="#a96c5e5798a769d283fd406091ec404ac">More...</a><br /></td></tr>
<tr class="separator:a96c5e5798a769d283fd406091ec404ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1f0e36dab8cb77a0dded71516970e28"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#af1f0e36dab8cb77a0dded71516970e28">idcv_num</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v)</td></tr>
<tr class="memdesc:af1f0e36dab8cb77a0dded71516970e28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert IDC variable to a long number.  <a href="#af1f0e36dab8cb77a0dded71516970e28">More...</a><br /></td></tr>
<tr class="separator:af1f0e36dab8cb77a0dded71516970e28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc1c3678b262804b805180fa99884343"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc1c3678b262804b805180fa99884343"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#afc1c3678b262804b805180fa99884343">idcv_string</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v)</td></tr>
<tr class="memdesc:afc1c3678b262804b805180fa99884343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert IDC variable to a text string. <br /></td></tr>
<tr class="separator:afc1c3678b262804b805180fa99884343"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1258c89269075132b3e696cd58c4c16d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1258c89269075132b3e696cd58c4c16d"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a1258c89269075132b3e696cd58c4c16d">idcv_float</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v)</td></tr>
<tr class="memdesc:a1258c89269075132b3e696cd58c4c16d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert IDC variable to a floating point. <br /></td></tr>
<tr class="separator:a1258c89269075132b3e696cd58c4c16d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac51cbaedddb9aff9235b68dbe95013ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ac51cbaedddb9aff9235b68dbe95013ac">idcv_object</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v, const idc_class_t *icls=NULL)</td></tr>
<tr class="memdesc:ac51cbaedddb9aff9235b68dbe95013ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an IDC object.  <a href="#ac51cbaedddb9aff9235b68dbe95013ac">More...</a><br /></td></tr>
<tr class="separator:ac51cbaedddb9aff9235b68dbe95013ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac27dfef499d8dd3a038654204e3a0d5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ac27dfef499d8dd3a038654204e3a0d5e">move_idcv</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *dst, <a class="el" href="classidc__value__t.html">idc_value_t</a> *src)</td></tr>
<tr class="memdesc:ac27dfef499d8dd3a038654204e3a0d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move 'src' to 'dst'.  <a href="#ac27dfef499d8dd3a038654204e3a0d5e">More...</a><br /></td></tr>
<tr class="separator:ac27dfef499d8dd3a038654204e3a0d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9697b9403a7941153d1b7bf721d366ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a9697b9403a7941153d1b7bf721d366ad">copy_idcv</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *dst, const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;src)</td></tr>
<tr class="memdesc:a9697b9403a7941153d1b7bf721d366ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy 'src' to 'dst'.  <a href="#a9697b9403a7941153d1b7bf721d366ad">More...</a><br /></td></tr>
<tr class="separator:a9697b9403a7941153d1b7bf721d366ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf3aaa9d875ac47991bc7c530e4efedd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#abf3aaa9d875ac47991bc7c530e4efedd">deep_copy_idcv</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *dst, const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;src)</td></tr>
<tr class="memdesc:abf3aaa9d875ac47991bc7c530e4efedd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deep copy an IDC object.  <a href="#abf3aaa9d875ac47991bc7c530e4efedd">More...</a><br /></td></tr>
<tr class="separator:abf3aaa9d875ac47991bc7c530e4efedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc1dc0af688ae75a70223fd24423ddec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#abc1dc0af688ae75a70223fd24423ddec">free_idcv</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v)</td></tr>
<tr class="memdesc:abc1dc0af688ae75a70223fd24423ddec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free storage used by <a class="el" href="group___v_t__.html#ga662cae113f2d445abd2f017c5c314cba" title="String (see qstr() and similar functions) ">VT_STR</a>/<a class="el" href="group___v_t__.html#gac29d7f7b5206c6d0c3d76e05ca32b97a" title="Object (see idc_value_t::obj) ">VT_OBJ</a> IDC variables.  <a href="#abc1dc0af688ae75a70223fd24423ddec">More...</a><br /></td></tr>
<tr class="separator:abc1dc0af688ae75a70223fd24423ddec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09dd7ffa5c79d0e4c0bf9c1fef45747a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09dd7ffa5c79d0e4c0bf9c1fef45747a"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a09dd7ffa5c79d0e4c0bf9c1fef45747a">swap_idcvs</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v1, <a class="el" href="classidc__value__t.html">idc_value_t</a> *v2)</td></tr>
<tr class="memdesc:a09dd7ffa5c79d0e4c0bf9c1fef45747a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap 2 variables. <br /></td></tr>
<tr class="separator:a09dd7ffa5c79d0e4c0bf9c1fef45747a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0299ec96d0aa99614658e5f454f79dcb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a0299ec96d0aa99614658e5f454f79dcb">get_idcv_class_name</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const <a class="el" href="classidc__value__t.html">idc_value_t</a> *obj)</td></tr>
<tr class="memdesc:a0299ec96d0aa99614658e5f454f79dcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the IDC object class name.  <a href="#a0299ec96d0aa99614658e5f454f79dcb">More...</a><br /></td></tr>
<tr class="separator:a0299ec96d0aa99614658e5f454f79dcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b48a42424deb9468cc50110287fa26d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a7b48a42424deb9468cc50110287fa26d">get_idcv_attr</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *res, const <a class="el" href="classidc__value__t.html">idc_value_t</a> *obj, const char *attr, bool may_use_getattr=false)</td></tr>
<tr class="memdesc:a7b48a42424deb9468cc50110287fa26d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an object attribute.  <a href="#a7b48a42424deb9468cc50110287fa26d">More...</a><br /></td></tr>
<tr class="separator:a7b48a42424deb9468cc50110287fa26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87a30cd4d06292ca92e6f9ab807d38d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a87a30cd4d06292ca92e6f9ab807d38d9">set_idcv_attr</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *obj, const char *attr, const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;value, bool may_use_setattr=false)</td></tr>
<tr class="memdesc:a87a30cd4d06292ca92e6f9ab807d38d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an object attribute.  <a href="#a87a30cd4d06292ca92e6f9ab807d38d9">More...</a><br /></td></tr>
<tr class="separator:a87a30cd4d06292ca92e6f9ab807d38d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68332368fb65396ff04d947609193ecf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a68332368fb65396ff04d947609193ecf">del_idcv_attr</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *obj, const char *attr)</td></tr>
<tr class="memdesc:a68332368fb65396ff04d947609193ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete an object attribute.  <a href="#a68332368fb65396ff04d947609193ecf">More...</a><br /></td></tr>
<tr class="separator:a68332368fb65396ff04d947609193ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ff920668a3988a8de93b7895cd7aedd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ff920668a3988a8de93b7895cd7aedd"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a1ff920668a3988a8de93b7895cd7aedd">print_idcv</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;v, const char *name=NULL, int indent=0)</td></tr>
<tr class="memdesc:a1ff920668a3988a8de93b7895cd7aedd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get text representation of <a class="el" href="classidc__value__t.html" title="Class to hold idc values. ">idc_value_t</a>. <br /></td></tr>
<tr class="separator:a1ff920668a3988a8de93b7895cd7aedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade9a5e709f46e338a0c348734b932a9e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ade9a5e709f46e338a0c348734b932a9e">get_idcv_slice</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *res, const <a class="el" href="classidc__value__t.html">idc_value_t</a> *v, <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> i1, <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> i2, int flags=0)</td></tr>
<tr class="memdesc:ade9a5e709f46e338a0c348734b932a9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get slice.  <a href="#ade9a5e709f46e338a0c348734b932a9e">More...</a><br /></td></tr>
<tr class="separator:ade9a5e709f46e338a0c348734b932a9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05aec2160a8e5679f47cd5da95792074"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a05aec2160a8e5679f47cd5da95792074">set_idcv_slice</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v, <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> i1, <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> i2, const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;in, int flags=0)</td></tr>
<tr class="memdesc:a05aec2160a8e5679f47cd5da95792074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set slice.  <a href="#a05aec2160a8e5679f47cd5da95792074">More...</a><br /></td></tr>
<tr class="separator:a05aec2160a8e5679f47cd5da95792074"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0af2e3c42b33c9508904590ac0bdc5d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> idc_class_t *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a0af2e3c42b33c9508904590ac0bdc5d0">add_idc_class</a> (const char *name, const idc_class_t *super=NULL)</td></tr>
<tr class="memdesc:a0af2e3c42b33c9508904590ac0bdc5d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new IDC class.  <a href="#a0af2e3c42b33c9508904590ac0bdc5d0">More...</a><br /></td></tr>
<tr class="separator:a0af2e3c42b33c9508904590ac0bdc5d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ec6fa9d02139d1bb211eadfe61bdbb9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> idc_class_t *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a6ec6fa9d02139d1bb211eadfe61bdbb9">find_idc_class</a> (const char *name)</td></tr>
<tr class="memdesc:a6ec6fa9d02139d1bb211eadfe61bdbb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find an existing IDC class by its name.  <a href="#a6ec6fa9d02139d1bb211eadfe61bdbb9">More...</a><br /></td></tr>
<tr class="separator:a6ec6fa9d02139d1bb211eadfe61bdbb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7933eb993762d3fd008fb397591e51b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ab7933eb993762d3fd008fb397591e51b">set_idc_method</a> (idc_class_t *icls, const char *fullfuncname)</td></tr>
<tr class="memdesc:ab7933eb993762d3fd008fb397591e51b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an IDC class method.  <a href="#ab7933eb993762d3fd008fb397591e51b">More...</a><br /></td></tr>
<tr class="separator:ab7933eb993762d3fd008fb397591e51b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c5c712605ebd72d74598fce8b18f388"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a9c5c712605ebd72d74598fce8b18f388">set_idc_dtor</a> (idc_class_t *icls, const char *fullfuncname)</td></tr>
<tr class="memdesc:a9c5c712605ebd72d74598fce8b18f388"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a destructor for an idc class.  <a href="#a9c5c712605ebd72d74598fce8b18f388">More...</a><br /></td></tr>
<tr class="separator:a9c5c712605ebd72d74598fce8b18f388"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fc339aecf348322a78ab301de9d581a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="classidc__value__t.html">idc_value_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a5fc339aecf348322a78ab301de9d581a">deref_idcv</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *v, int vref_flags)</td></tr>
<tr class="memdesc:a5fc339aecf348322a78ab301de9d581a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dereference a <a class="el" href="group___v_t__.html#ga37d8aaba00cee490d64289da4a1a7bc2" title="Reference. ">VT_REF</a> variable.  <a href="#a5fc339aecf348322a78ab301de9d581a">More...</a><br /></td></tr>
<tr class="separator:a5fc339aecf348322a78ab301de9d581a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e4c1356f3cd44c14a17b351b69ef74c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a5e4c1356f3cd44c14a17b351b69ef74c">create_idcv_ref</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *ref, const <a class="el" href="classidc__value__t.html">idc_value_t</a> *v)</td></tr>
<tr class="memdesc:a5e4c1356f3cd44c14a17b351b69ef74c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a variable reference.  <a href="#a5e4c1356f3cd44c14a17b351b69ef74c">More...</a><br /></td></tr>
<tr class="separator:a5e4c1356f3cd44c14a17b351b69ef74c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4549a87a85faaabef74b553840afcc83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="classidc__value__t.html">idc_value_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a4549a87a85faaabef74b553840afcc83">add_idc_gvar</a> (const char *name)</td></tr>
<tr class="memdesc:a4549a87a85faaabef74b553840afcc83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add global IDC variable.  <a href="#a4549a87a85faaabef74b553840afcc83">More...</a><br /></td></tr>
<tr class="separator:a4549a87a85faaabef74b553840afcc83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b262ab8dcef942729e381b02d6aa27a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="classidc__value__t.html">idc_value_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a9b262ab8dcef942729e381b02d6aa27a">find_idc_gvar</a> (const char *name)</td></tr>
<tr class="memdesc:a9b262ab8dcef942729e381b02d6aa27a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find an existing global IDC variable by its name.  <a href="#a9b262ab8dcef942729e381b02d6aa27a">More...</a><br /></td></tr>
<tr class="separator:a9b262ab8dcef942729e381b02d6aa27a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78f22d69dc8925cd8d718ffb81ffff92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a78f22d69dc8925cd8d718ffb81ffff92">add_idc_func</a> (const <a class="el" href="structext__idcfunc__t.html">ext_idcfunc_t</a> &amp;func)</td></tr>
<tr class="memdesc:a78f22d69dc8925cd8d718ffb81ffff92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an IDC function.  <a href="#a78f22d69dc8925cd8d718ffb81ffff92">More...</a><br /></td></tr>
<tr class="separator:a78f22d69dc8925cd8d718ffb81ffff92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab173f3c69ec36021e73a8c5f65915e45"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab173f3c69ec36021e73a8c5f65915e45"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ab173f3c69ec36021e73a8c5f65915e45">del_idc_func</a> (const char *name)</td></tr>
<tr class="memdesc:ab173f3c69ec36021e73a8c5f65915e45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete an IDC function. <br /></td></tr>
<tr class="separator:ab173f3c69ec36021e73a8c5f65915e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af83942ed5c901e1b5c0aa10f16ec4861"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af83942ed5c901e1b5c0aa10f16ec4861"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>find_idc_func</b> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const char *prefix, int n=0)</td></tr>
<tr class="separator:af83942ed5c901e1b5c0aa10f16ec4861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e5cd0ebb32720dd69c7ad0330b21b71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e5cd0ebb32720dd69c7ad0330b21b71"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a6e5cd0ebb32720dd69c7ad0330b21b71">get_current_extlang</a> (void)</td></tr>
<tr class="memdesc:a6e5cd0ebb32720dd69c7ad0330b21b71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current active external language. <br /></td></tr>
<tr class="separator:a6e5cd0ebb32720dd69c7ad0330b21b71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af49706fbe951ac860d5a7e14f7ef0c1a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af49706fbe951ac860d5a7e14f7ef0c1a"></a>
const <a class="el" href="classqrefcnt__t.html">extlang_object_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>get_extlang</b> (void)</td></tr>
<tr class="separator:af49706fbe951ac860d5a7e14f7ef0c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad1b28cb59aec9322500da906ba5b096"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#aad1b28cb59aec9322500da906ba5b096">install_extlang</a> (<a class="el" href="structextlang__t.html">extlang_t</a> *el)</td></tr>
<tr class="memdesc:aad1b28cb59aec9322500da906ba5b096"><td class="mdescLeft">&#160;</td><td class="mdescRight">Install an external language interpreter.  <a href="#aad1b28cb59aec9322500da906ba5b096">More...</a><br /></td></tr>
<tr class="separator:aad1b28cb59aec9322500da906ba5b096"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5b7e4d8b70c32623c55df7027bd7a60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ad5b7e4d8b70c32623c55df7027bd7a60">remove_extlang</a> (<a class="el" href="structextlang__t.html">extlang_t</a> *el)</td></tr>
<tr class="memdesc:ad5b7e4d8b70c32623c55df7027bd7a60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uninstall an external language interpreter.  <a href="#ad5b7e4d8b70c32623c55df7027bd7a60">More...</a><br /></td></tr>
<tr class="separator:ad5b7e4d8b70c32623c55df7027bd7a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cdf7578eb86ac0b1596bdcec38a4a7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a2cdf7578eb86ac0b1596bdcec38a4a7c">select_extlang</a> (<a class="el" href="structextlang__t.html">extlang_t</a> *el)</td></tr>
<tr class="memdesc:a2cdf7578eb86ac0b1596bdcec38a4a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects the external language interpreter.  <a href="#a2cdf7578eb86ac0b1596bdcec38a4a7c">More...</a><br /></td></tr>
<tr class="separator:a2cdf7578eb86ac0b1596bdcec38a4a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35c2fe60865c1db24e2ce75346f65e48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35c2fe60865c1db24e2ce75346f65e48"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>for_all_extlangs</b> (<a class="el" href="structextlang__visitor__t.html">extlang_visitor_t</a> &amp;ev, bool select=false)</td></tr>
<tr class="separator:a35c2fe60865c1db24e2ce75346f65e48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa93672cd4dc4228d6d6d3a4ca8c3696"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa93672cd4dc4228d6d6d3a4ca8c3696"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>find_extlang</b> (const void *str, find_extlang_kind_t kind)</td></tr>
<tr class="separator:afa93672cd4dc4228d6d6d3a4ca8c3696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aced0dd12b6b350090f5e009c1b0a9179"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aced0dd12b6b350090f5e009c1b0a9179"></a>
<a class="el" href="classqrefcnt__t.html">extlang_object_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#aced0dd12b6b350090f5e009c1b0a9179">find_extlang_by_ext</a> (const char *ext)</td></tr>
<tr class="memdesc:aced0dd12b6b350090f5e009c1b0a9179"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the extlang that can handle the given file extension. <br /></td></tr>
<tr class="separator:aced0dd12b6b350090f5e009c1b0a9179"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70d030aaaeed385d54c70594bcfec89f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70d030aaaeed385d54c70594bcfec89f"></a>
<a class="el" href="classqrefcnt__t.html">extlang_object_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a70d030aaaeed385d54c70594bcfec89f">find_extlang_by_name</a> (const char *name)</td></tr>
<tr class="memdesc:a70d030aaaeed385d54c70594bcfec89f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find an extlang by name. <br /></td></tr>
<tr class="separator:a70d030aaaeed385d54c70594bcfec89f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b87e734501e5fcd6364f9273817cc78"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b87e734501e5fcd6364f9273817cc78"></a>
<a class="el" href="classqrefcnt__t.html">extlang_object_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a3b87e734501e5fcd6364f9273817cc78">find_extlang_by_index</a> (size_t idx)</td></tr>
<tr class="memdesc:a3b87e734501e5fcd6364f9273817cc78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find an extlang by index. <br /></td></tr>
<tr class="separator:a3b87e734501e5fcd6364f9273817cc78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a916688d0b1d30c5a5c75466abea218"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a4a916688d0b1d30c5a5c75466abea218">set_header_path</a> (const char *path, bool add)</td></tr>
<tr class="memdesc:a4a916688d0b1d30c5a5c75466abea218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set or append a header path.  <a href="#a4a916688d0b1d30c5a5c75466abea218">More...</a><br /></td></tr>
<tr class="separator:a4a916688d0b1d30c5a5c75466abea218"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaef43e7cad9e3caedce85f1cc5ac212e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#aaef43e7cad9e3caedce85f1cc5ac212e">get_idc_filename</a> (char *buf, size_t bufsize, const char *file)</td></tr>
<tr class="memdesc:aaef43e7cad9e3caedce85f1cc5ac212e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get full name of IDC file name.  <a href="#aaef43e7cad9e3caedce85f1cc5ac212e">More...</a><br /></td></tr>
<tr class="separator:aaef43e7cad9e3caedce85f1cc5ac212e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a116fb5df3ad7a640c792210fbff845"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a0a116fb5df3ad7a640c792210fbff845">exec_system_script</a> (const char *file, bool complain_if_no_file=true)</td></tr>
<tr class="memdesc:a0a116fb5df3ad7a640c792210fbff845"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile and execute "main" function from system file.  <a href="#a0a116fb5df3ad7a640c792210fbff845">More...</a><br /></td></tr>
<tr class="separator:a0a116fb5df3ad7a640c792210fbff845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac61bd5c361351e8fdb913069d621ba28"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ac61bd5c361351e8fdb913069d621ba28">eval_expr_long</a> (<a class="el" href="pro_8h.html#a430639fcfd4601cd6cb310ae71481fe1">sval_t</a> *res, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> where, const char *line, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL)</td></tr>
<tr class="memdesc:ac61bd5c361351e8fdb913069d621ba28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile and calculate an expression.  <a href="#ac61bd5c361351e8fdb913069d621ba28">More...</a><br /></td></tr>
<tr class="separator:ac61bd5c361351e8fdb913069d621ba28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1af529c8ef708219c014d32a7cbd3b0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1af529c8ef708219c014d32a7cbd3b0b"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a1af529c8ef708219c014d32a7cbd3b0b">eval_expr_long</a> (<a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> *res, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> where, const char *line, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL)</td></tr>
<tr class="memdesc:a1af529c8ef708219c014d32a7cbd3b0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="expr_8hpp.html#ac61bd5c361351e8fdb913069d621ba28" title="Compile and calculate an expression. ">eval_expr_long()</a> <br /></td></tr>
<tr class="separator:a1af529c8ef708219c014d32a7cbd3b0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa38d428ec1a9b27bf455b6eb7795eec3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#aa38d428ec1a9b27bf455b6eb7795eec3">eval_expr</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *rv, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> where, const char *line, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL)</td></tr>
<tr class="memdesc:aa38d428ec1a9b27bf455b6eb7795eec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile and calculate an expression.  <a href="#aa38d428ec1a9b27bf455b6eb7795eec3">More...</a><br /></td></tr>
<tr class="separator:aa38d428ec1a9b27bf455b6eb7795eec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a558cf09dfe23f7ae0fd1276e315716"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a3a558cf09dfe23f7ae0fd1276e315716">eval_idc_expr</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *rv, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> where, const char *buf, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL)</td></tr>
<tr class="memdesc:a3a558cf09dfe23f7ae0fd1276e315716"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="expr_8hpp.html#aa38d428ec1a9b27bf455b6eb7795eec3" title="Compile and calculate an expression. ">eval_expr()</a>, but will always use the IDC interpreter regardless of the currently installed extlang.  <a href="#a3a558cf09dfe23f7ae0fd1276e315716">More...</a><br /></td></tr>
<tr class="separator:a3a558cf09dfe23f7ae0fd1276e315716"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e04bc1bdf8491c05a9e53a61eb4abe2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e04bc1bdf8491c05a9e53a61eb4abe2"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>compile_idc_file</b> (const char *file, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL, int cpl_flags=<a class="el" href="group___c_p_l__.html#gaa6bbac4baddfb8801c0cb988e47e3215">CPL_DEL_MACROS</a>|<a class="el" href="group___c_p_l__.html#ga1512a7fb27627efbc0615d4571cdea93">CPL_USE_LABELS</a>)</td></tr>
<tr class="separator:a9e04bc1bdf8491c05a9e53a61eb4abe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9813ae85365b6e680a5542a8104796d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9813ae85365b6e680a5542a8104796d9"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>compile_idc_text</b> (const char *line, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL, <a class="el" href="structidc__resolver__t.html">idc_resolver_t</a> *resolver=NULL, bool only_safe_funcs=false)</td></tr>
<tr class="separator:a9813ae85365b6e680a5542a8104796d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e34b9c60bef3fb2a039a8b5292723e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a7e34b9c60bef3fb2a039a8b5292723e7">compile_idc_snippet</a> (const char *func, const char *text, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL, <a class="el" href="structidc__resolver__t.html">idc_resolver_t</a> *resolver=NULL, bool only_safe_funcs=false)</td></tr>
<tr class="memdesc:a7e34b9c60bef3fb2a039a8b5292723e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile text with IDC statements.  <a href="#a7e34b9c60bef3fb2a039a8b5292723e7">More...</a><br /></td></tr>
<tr class="separator:a7e34b9c60bef3fb2a039a8b5292723e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c1af5bfd4db2cdf456544986bc1a8ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a8c1af5bfd4db2cdf456544986bc1a8ea">call_idc_func</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *result, const char *fname, const <a class="el" href="classidc__value__t.html">idc_value_t</a> args[], size_t argsnum, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL, <a class="el" href="structidc__resolver__t.html">idc_resolver_t</a> *resolver=NULL)</td></tr>
<tr class="memdesc:a8c1af5bfd4db2cdf456544986bc1a8ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute an IDC function.  <a href="#a8c1af5bfd4db2cdf456544986bc1a8ea">More...</a><br /></td></tr>
<tr class="separator:a8c1af5bfd4db2cdf456544986bc1a8ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae1b1bdd03e885f369689f65093889ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#aae1b1bdd03e885f369689f65093889ec">exec_idc_script</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *result, const char *path, const char *func, const <a class="el" href="classidc__value__t.html">idc_value_t</a> args[], size_t argsnum, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL)</td></tr>
<tr class="memdesc:aae1b1bdd03e885f369689f65093889ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile and execute IDC function(s) from file.  <a href="#aae1b1bdd03e885f369689f65093889ec">More...</a><br /></td></tr>
<tr class="separator:aae1b1bdd03e885f369689f65093889ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d5b015e4dbb03a79b49835d1b820e61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a0d5b015e4dbb03a79b49835d1b820e61">eval_idc_snippet</a> (<a class="el" href="classidc__value__t.html">idc_value_t</a> *result, const char *line, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL, <a class="el" href="structidc__resolver__t.html">idc_resolver_t</a> *resolver=NULL)</td></tr>
<tr class="memdesc:a0d5b015e4dbb03a79b49835d1b820e61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile and execute IDC statements or expressions.  <a href="#a0d5b015e4dbb03a79b49835d1b820e61">More...</a><br /></td></tr>
<tr class="separator:a0d5b015e4dbb03a79b49835d1b820e61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc5b47715c158ed9299a1a759408ce03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#afc5b47715c158ed9299a1a759408ce03">setup_lowcnd_regfuncs</a> (<a class="el" href="expr_8hpp.html#a4f81b59a59f911daa997940dc00d7ec0">idc_func_t</a> *getreg, <a class="el" href="expr_8hpp.html#a4f81b59a59f911daa997940dc00d7ec0">idc_func_t</a> *setreg)</td></tr>
<tr class="memdesc:afc5b47715c158ed9299a1a759408ce03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup lowcnd callbacks to read/write registers.  <a href="#afc5b47715c158ed9299a1a759408ce03">More...</a><br /></td></tr>
<tr class="separator:afc5b47715c158ed9299a1a759408ce03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6440cd402cee18e4139b7bc09d09c26d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a6440cd402cee18e4139b7bc09d09c26d">get_idptype_and_data</a> (int *vtype, const void **vdata, const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;v)</td></tr>
<tr class="memdesc:a6440cd402cee18e4139b7bc09d09c26d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract type &amp; data from the <a class="el" href="classidc__value__t.html" title="Class to hold idc values. ">idc_value_t</a> instance that was passed to parse_config_value().  <a href="#a6440cd402cee18e4139b7bc09d09c26d">More...</a><br /></td></tr>
<tr class="separator:a6440cd402cee18e4139b7bc09d09c26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Enumerate object attributes</div></td></tr>
<tr class="memitem:aaac283686cc4799b2f63b09f063d2824"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaac283686cc4799b2f63b09f063d2824"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>first_idcv_attr</b> (const <a class="el" href="classidc__value__t.html">idc_value_t</a> *obj)</td></tr>
<tr class="separator:aaac283686cc4799b2f63b09f063d2824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f82841150df896278338c762e836c4d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f82841150df896278338c762e836c4d"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>last_idcv_attr</b> (const <a class="el" href="classidc__value__t.html">idc_value_t</a> *obj)</td></tr>
<tr class="separator:a6f82841150df896278338c762e836c4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c60cd592321c175bc1c2f30e5d7db52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c60cd592321c175bc1c2f30e5d7db52"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>next_idcv_attr</b> (const <a class="el" href="classidc__value__t.html">idc_value_t</a> *obj, const char *attr)</td></tr>
<tr class="separator:a9c60cd592321c175bc1c2f30e5d7db52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a538b29b56768398acf7c91a217847abc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a538b29b56768398acf7c91a217847abc"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>prev_idcv_attr</b> (const <a class="el" href="classidc__value__t.html">idc_value_t</a> *obj, const char *attr)</td></tr>
<tr class="separator:a538b29b56768398acf7c91a217847abc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Set user-defined functions to work with object attributes.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>If the function name is NULL, the definitions are removed.</p>
<dl class="section return"><dt>Returns</dt><dd>name of the old attribute function. NULL means error, "" means no previous attr func </dd></dl>
</div></td></tr>
<tr class="memitem:a99b2bfd11a66ca1087b2be5993128347"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99b2bfd11a66ca1087b2be5993128347"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>set_idc_getattr</b> (idc_class_t *icls, const char *fullfuncname)</td></tr>
<tr class="separator:a99b2bfd11a66ca1087b2be5993128347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a74b9711e045e1f8d252e6f62004a81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a74b9711e045e1f8d252e6f62004a81"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>set_idc_setattr</b> (idc_class_t *icls, const char *fullfuncname)</td></tr>
<tr class="separator:a1a74b9711e045e1f8d252e6f62004a81"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a237c5c3a16b77428037d9de194d47562"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a237c5c3a16b77428037d9de194d47562"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a237c5c3a16b77428037d9de194d47562">IDC_LANG_EXT</a>&#160;&#160;&#160;&quot;idc&quot;</td></tr>
<tr class="memdesc:a237c5c3a16b77428037d9de194d47562"><td class="mdescLeft">&#160;</td><td class="mdescRight">IDC script extension. <br /></td></tr>
<tr class="separator:a237c5c3a16b77428037d9de194d47562"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga014a316056d931baf3728110635950e2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga014a316056d931baf3728110635950e2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_a_r_s_l_i_c_e__.html#ga014a316056d931baf3728110635950e2">VARSLICE_SINGLE</a>&#160;&#160;&#160;0x0001</td></tr>
<tr class="memdesc:ga014a316056d931baf3728110635950e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">return single index (i2 is ignored) <br /></td></tr>
<tr class="separator:ga014a316056d931baf3728110635950e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76814172bcf72fc547553e677932946a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76814172bcf72fc547553e677932946a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_r_e_f__.html#ga76814172bcf72fc547553e677932946a">VREF_LOOP</a>&#160;&#160;&#160;0x0000</td></tr>
<tr class="memdesc:ga76814172bcf72fc547553e677932946a"><td class="mdescLeft">&#160;</td><td class="mdescRight">dereference until we get a non <a class="el" href="group___v_t__.html#ga37d8aaba00cee490d64289da4a1a7bc2" title="Reference. ">VT_REF</a> <br /></td></tr>
<tr class="separator:ga76814172bcf72fc547553e677932946a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c6467e1d21776687a218d81863c1794"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5c6467e1d21776687a218d81863c1794"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_r_e_f__.html#ga5c6467e1d21776687a218d81863c1794">VREF_ONCE</a>&#160;&#160;&#160;0x0001</td></tr>
<tr class="memdesc:ga5c6467e1d21776687a218d81863c1794"><td class="mdescLeft">&#160;</td><td class="mdescRight">dereference only once, do not loop <br /></td></tr>
<tr class="separator:ga5c6467e1d21776687a218d81863c1794"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga190b9a602630d4aac07a18f0a6d59c07"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga190b9a602630d4aac07a18f0a6d59c07"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_r_e_f__.html#ga190b9a602630d4aac07a18f0a6d59c07">VREF_COPY</a>&#160;&#160;&#160;0x0002</td></tr>
<tr class="memdesc:ga190b9a602630d4aac07a18f0a6d59c07"><td class="mdescLeft">&#160;</td><td class="mdescRight">copy the result to the input var (v) <br /></td></tr>
<tr class="separator:ga190b9a602630d4aac07a18f0a6d59c07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9366c439f83b49166170067f8ee071fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9366c439f83b49166170067f8ee071fc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#ga9366c439f83b49166170067f8ee071fc">VT_LONG</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ga9366c439f83b49166170067f8ee071fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integer (see <a class="el" href="classidc__value__t.html#aa09e4449f34001012e2f53248eb349fb" title="VT_LONG ">idc_value_t::num</a>) <br /></td></tr>
<tr class="separator:ga9366c439f83b49166170067f8ee071fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ea40dbaf6ddc79132c4c71ebac5d977"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8ea40dbaf6ddc79132c4c71ebac5d977"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#ga8ea40dbaf6ddc79132c4c71ebac5d977">VT_FLOAT</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:ga8ea40dbaf6ddc79132c4c71ebac5d977"><td class="mdescLeft">&#160;</td><td class="mdescRight">Floating point (see <a class="el" href="classidc__value__t.html#a3cabc459ecf6959d53769ec189e34aa1" title="VT_FLOAT ">idc_value_t::e</a>) <br /></td></tr>
<tr class="separator:ga8ea40dbaf6ddc79132c4c71ebac5d977"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb82f81e6751e3bc2a5437b649d6f00c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#gadb82f81e6751e3bc2a5437b649d6f00c">VT_WILD</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:gadb82f81e6751e3bc2a5437b649d6f00c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function with arbitrary number of arguments.  <a href="group___v_t__.html#gadb82f81e6751e3bc2a5437b649d6f00c">More...</a><br /></td></tr>
<tr class="separator:gadb82f81e6751e3bc2a5437b649d6f00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac29d7f7b5206c6d0c3d76e05ca32b97a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac29d7f7b5206c6d0c3d76e05ca32b97a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#gac29d7f7b5206c6d0c3d76e05ca32b97a">VT_OBJ</a>&#160;&#160;&#160;5</td></tr>
<tr class="memdesc:gac29d7f7b5206c6d0c3d76e05ca32b97a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object (see idc_value_t::obj) <br /></td></tr>
<tr class="separator:gac29d7f7b5206c6d0c3d76e05ca32b97a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee9c7d2d04f13ab6982a48178e673411"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaee9c7d2d04f13ab6982a48178e673411"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#gaee9c7d2d04f13ab6982a48178e673411">VT_FUNC</a>&#160;&#160;&#160;6</td></tr>
<tr class="memdesc:gaee9c7d2d04f13ab6982a48178e673411"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function (see <a class="el" href="classidc__value__t.html#a84ced37bdaf52d09a4830e93a036a894" title="VT_FUNC ">idc_value_t::funcidx</a>) <br /></td></tr>
<tr class="separator:gaee9c7d2d04f13ab6982a48178e673411"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga662cae113f2d445abd2f017c5c314cba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga662cae113f2d445abd2f017c5c314cba"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#ga662cae113f2d445abd2f017c5c314cba">VT_STR</a>&#160;&#160;&#160;7</td></tr>
<tr class="memdesc:ga662cae113f2d445abd2f017c5c314cba"><td class="mdescLeft">&#160;</td><td class="mdescRight">String (see qstr() and similar functions) <br /></td></tr>
<tr class="separator:ga662cae113f2d445abd2f017c5c314cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73ee8713be7855fc5fece9efd07517c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73ee8713be7855fc5fece9efd07517c0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#ga73ee8713be7855fc5fece9efd07517c0">VT_PVOID</a>&#160;&#160;&#160;8</td></tr>
<tr class="memdesc:ga73ee8713be7855fc5fece9efd07517c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">void * <br /></td></tr>
<tr class="separator:ga73ee8713be7855fc5fece9efd07517c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga843c8c23e40276b9682ab2ed7a621dd6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga843c8c23e40276b9682ab2ed7a621dd6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#ga843c8c23e40276b9682ab2ed7a621dd6">VT_INT64</a>&#160;&#160;&#160;9</td></tr>
<tr class="memdesc:ga843c8c23e40276b9682ab2ed7a621dd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">i64 <br /></td></tr>
<tr class="separator:ga843c8c23e40276b9682ab2ed7a621dd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37d8aaba00cee490d64289da4a1a7bc2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga37d8aaba00cee490d64289da4a1a7bc2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___v_t__.html#ga37d8aaba00cee490d64289da4a1a7bc2">VT_REF</a>&#160;&#160;&#160;10</td></tr>
<tr class="memdesc:ga37d8aaba00cee490d64289da4a1a7bc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference. <br /></td></tr>
<tr class="separator:ga37d8aaba00cee490d64289da4a1a7bc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45b4ccf5dfd00fae2f30f0395f5dc802"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45b4ccf5dfd00fae2f30f0395f5dc802"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a45b4ccf5dfd00fae2f30f0395f5dc802">eExecThrow</a>&#160;&#160;&#160;90</td></tr>
<tr class="memdesc:a45b4ccf5dfd00fae2f30f0395f5dc802"><td class="mdescLeft">&#160;</td><td class="mdescRight">See return value of <a class="el" href="expr_8hpp.html#a4f81b59a59f911daa997940dc00d7ec0" title="Prototype of an external IDC function (implemented in C). ">idc_func_t</a>. <br /></td></tr>
<tr class="separator:a45b4ccf5dfd00fae2f30f0395f5dc802"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10db1b89a32d67a13cab2ed10ef7c4f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga10db1b89a32d67a13cab2ed10ef7c4f4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_x_t_f_u_n__.html#ga10db1b89a32d67a13cab2ed10ef7c4f4">EXTFUN_BASE</a>&#160;&#160;&#160;0x0001</td></tr>
<tr class="memdesc:ga10db1b89a32d67a13cab2ed10ef7c4f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">requires open database. <br /></td></tr>
<tr class="separator:ga10db1b89a32d67a13cab2ed10ef7c4f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabef798d37532f260cb10152049bfb14"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_x_t_f_u_n__.html#gaabef798d37532f260cb10152049bfb14">EXTFUN_NORET</a>&#160;&#160;&#160;0x0002</td></tr>
<tr class="memdesc:gaabef798d37532f260cb10152049bfb14"><td class="mdescLeft">&#160;</td><td class="mdescRight">does not return.  <a href="group___e_x_t_f_u_n__.html#gaabef798d37532f260cb10152049bfb14">More...</a><br /></td></tr>
<tr class="separator:gaabef798d37532f260cb10152049bfb14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga705e9ca1426c11f7883f09387d4acc35"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_x_t_f_u_n__.html#ga705e9ca1426c11f7883f09387d4acc35">EXTFUN_SAFE</a>&#160;&#160;&#160;0x0004</td></tr>
<tr class="memdesc:ga705e9ca1426c11f7883f09387d4acc35"><td class="mdescLeft">&#160;</td><td class="mdescRight">thread safe function.  <a href="group___e_x_t_f_u_n__.html#ga705e9ca1426c11f7883f09387d4acc35">More...</a><br /></td></tr>
<tr class="separator:ga705e9ca1426c11f7883f09387d4acc35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a718a2d33a2375a820dc6334a85a9a7fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a718a2d33a2375a820dc6334a85a9a7fb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>HF_FIRST</b>&#160;&#160;&#160;HF_KEYWORD1</td></tr>
<tr class="separator:a718a2d33a2375a820dc6334a85a9a7fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94593354f0f4626309cfd06f434dfda7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94593354f0f4626309cfd06f434dfda7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>EXTLANG_IDC</b>&#160;&#160;&#160;0x01</td></tr>
<tr class="separator:a94593354f0f4626309cfd06f434dfda7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa6bbac4baddfb8801c0cb988e47e3215"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa6bbac4baddfb8801c0cb988e47e3215"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_p_l__.html#gaa6bbac4baddfb8801c0cb988e47e3215">CPL_DEL_MACROS</a>&#160;&#160;&#160;0x0001</td></tr>
<tr class="memdesc:gaa6bbac4baddfb8801c0cb988e47e3215"><td class="mdescLeft">&#160;</td><td class="mdescRight">delete macros at the end of compilation <br /></td></tr>
<tr class="separator:gaa6bbac4baddfb8801c0cb988e47e3215"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1512a7fb27627efbc0615d4571cdea93"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1512a7fb27627efbc0615d4571cdea93"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_p_l__.html#ga1512a7fb27627efbc0615d4571cdea93">CPL_USE_LABELS</a>&#160;&#160;&#160;0x0002</td></tr>
<tr class="memdesc:ga1512a7fb27627efbc0615d4571cdea93"><td class="mdescLeft">&#160;</td><td class="mdescRight">allow program labels in the script <br /></td></tr>
<tr class="separator:ga1512a7fb27627efbc0615d4571cdea93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga527b0fff63a1f130f2f3140f6b72afcf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga527b0fff63a1f130f2f3140f6b72afcf"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_p_l__.html#ga527b0fff63a1f130f2f3140f6b72afcf">CPL_ONLY_SAFE</a>&#160;&#160;&#160;0x0004</td></tr>
<tr class="memdesc:ga527b0fff63a1f130f2f3140f6b72afcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">allow calls of only thread-safe functions <br /></td></tr>
<tr class="separator:ga527b0fff63a1f130f2f3140f6b72afcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ae42889847c9c65a712a50063bbb64516"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae42889847c9c65a712a50063bbb64516"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="structidc__global__t.html">idc_global_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ae42889847c9c65a712a50063bbb64516">idc_vars_t</a></td></tr>
<tr class="memdesc:ae42889847c9c65a712a50063bbb64516"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of global idc variables <br /></td></tr>
<tr class="separator:ae42889847c9c65a712a50063bbb64516"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f81b59a59f911daa997940dc00d7ec0"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a4f81b59a59f911daa997940dc00d7ec0">idc_func_t</a>(<a class="el" href="classidc__value__t.html">idc_value_t</a> *argv, <a class="el" href="classidc__value__t.html">idc_value_t</a> *r)</td></tr>
<tr class="memdesc:a4f81b59a59f911daa997940dc00d7ec0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prototype of an external IDC function (implemented in C).  <a href="#a4f81b59a59f911daa997940dc00d7ec0">More...</a><br /></td></tr>
<tr class="separator:a4f81b59a59f911daa997940dc00d7ec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a577d60cf6e9bef16dc62435cb32f2a45"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a577d60cf6e9bef16dc62435cb32f2a45"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="structextlang__t.html">extlang_t</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#a577d60cf6e9bef16dc62435cb32f2a45">extlangs_t</a></td></tr>
<tr class="memdesc:a577d60cf6e9bef16dc62435cb32f2a45"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of external language descriptions <br /></td></tr>
<tr class="separator:a577d60cf6e9bef16dc62435cb32f2a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0c90e3a73c763345e81054130181bc4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0c90e3a73c763345e81054130181bc4"></a>
typedef <a class="el" href="classqrefcnt__t.html">qrefcnt_t</a>&lt; <a class="el" href="structextlang__t.html">extlang_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>extlang_object_t</b></td></tr>
<tr class="separator:ae0c90e3a73c763345e81054130181bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ae5c4cd9d9bdb685dcedc109622c1f3a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5c4cd9d9bdb685dcedc109622c1f3a4"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expr_8hpp.html#ae5c4cd9d9bdb685dcedc109622c1f3a4">syntax_highlight_style</a> { <br />
&#160;&#160;<b>HF_DEFAULT</b> = 0, 
<b>HF_KEYWORD1</b> = 1, 
<b>HF_KEYWORD2</b> = 2, 
<b>HF_KEYWORD3</b> = 3, 
<br />
&#160;&#160;<b>HF_STRING</b> = 4, 
<b>HF_COMMENT</b> = 5, 
<b>HF_PREPROC</b> = 6, 
<b>HF_NUMBER</b> = 7, 
<br />
&#160;&#160;<b>HF_MAX</b>
<br />
 }</td></tr>
<tr class="memdesc:ae5c4cd9d9bdb685dcedc109622c1f3a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Possible syntax element highlighting style names. <br /></td></tr>
<tr class="separator:ae5c4cd9d9bdb685dcedc109622c1f3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af608568d1657d96cfa50b0ea24a757af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af608568d1657d96cfa50b0ea24a757af"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>find_extlang_kind_t</b> { <b>FIND_EXTLANG_BY_EXT</b>, 
<b>FIND_EXTLANG_BY_NAME</b>, 
<b>FIND_EXTLANG_BY_IDX</b>
 }</td></tr>
<tr class="separator:af608568d1657d96cfa50b0ea24a757af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a4f81b59a59f911daa997940dc00d7ec0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> idc_func_t(<a class="el" href="classidc__value__t.html">idc_value_t</a> *argv, <a class="el" href="classidc__value__t.html">idc_value_t</a> *r)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prototype of an external IDC function (implemented in C). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">argv</td><td>vector of input arguments. IDA will convert all arguments to types specified by <a class="el" href="structext__idcfunc__t.html#a95368dda086f4483f6db79b9ad97a39f" title="Type of arguments. ">ext_idcfunc_t::args</a>, except for <a class="el" href="group___v_t__.html#gadb82f81e6751e3bc2a5437b649d6f00c" title="Function with arbitrary number of arguments. ">VT_WILD</a> </td></tr>
    <tr><td class="paramname">r</td><td>return value of the function or exception </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if ok, all other values indicate error. the error code must be set with <a class="el" href="pro_8h.html#aa566d92429849c81f035fc2f5c643f67" title="Set qerrno. ">set_qerrno()</a>:<ul>
<li><a class="el" href="expr_8hpp.html#a45b4ccf5dfd00fae2f30f0395f5dc802" title="See return value of idc_func_t. ">eExecThrow</a> - a new exception has been generated, see 'r'</li>
<li>other values - runtime error has occurred </li>
</ul>
</dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a0719749dbe301226c063f2ed888a6006"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> idcv_long </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert IDC variable to a long (32/64bit) number. </p>
<dl class="section return"><dt>Returns</dt><dd>v = 0 if impossible to convert to long </dd></dl>

</div>
</div>
<a class="anchor" id="a96c5e5798a769d283fd406091ec404ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> idcv_int64 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert IDC variable to a 64bit number. </p>
<dl class="section return"><dt>Returns</dt><dd>v = 0 if impossible to convert to int64 </dd></dl>

</div>
</div>
<a class="anchor" id="af1f0e36dab8cb77a0dded71516970e28"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> idcv_num </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert IDC variable to a long number. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>v = 0 if IDC variable = "false" string</li>
<li>v = 1 if IDC variable = "true" string</li>
<li>v = number if IDC variable is number or string containing a number</li>
<li>eTypeConflict if IDC variable = empty string </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="ac51cbaedddb9aff9235b68dbe95013ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> idcv_object </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const idc_class_t *&#160;</td>
          <td class="paramname"><em>icls</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an IDC object. </p>
<p>The original value of 'v' is discarded (freed). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>variable to hold the object. any previous value will be cleaned </td></tr>
    <tr><td class="paramname">icls</td><td>ptr to the desired class. NULL means "object" class this ptr must be returned by <a class="el" href="expr_8hpp.html#a0af2e3c42b33c9508904590ac0bdc5d0" title="Create a new IDC class. ">add_idc_class()</a> or <a class="el" href="expr_8hpp.html#a6ec6fa9d02139d1bb211eadfe61bdbb9" title="Find an existing IDC class by its name. ">find_idc_class()</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>always eOk </dd></dl>

</div>
</div>
<a class="anchor" id="ac27dfef499d8dd3a038654204e3a0d5e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> move_idcv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Move 'src' to 'dst'. </p>
<p>This function is more effective than copy_idcv since it never copies big amounts of data. </p>

</div>
</div>
<a class="anchor" id="a9697b9403a7941153d1b7bf721d366ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> copy_idcv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy 'src' to 'dst'. </p>
<p>For idc objects only a reference is copied. </p>

</div>
</div>
<a class="anchor" id="abf3aaa9d875ac47991bc7c530e4efedd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> deep_copy_idcv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Deep copy an IDC object. </p>
<p>This function performs deep copy of idc objects. If 'src' is not an object, <a class="el" href="expr_8hpp.html#a9697b9403a7941153d1b7bf721d366ad" title="Copy &#39;src&#39; to &#39;dst&#39;. ">copy_idcv()</a> will be called </p>

</div>
</div>
<a class="anchor" id="abc1dc0af688ae75a70223fd24423ddec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> free_idcv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free storage used by <a class="el" href="group___v_t__.html#ga662cae113f2d445abd2f017c5c314cba" title="String (see qstr() and similar functions) ">VT_STR</a>/<a class="el" href="group___v_t__.html#gac29d7f7b5206c6d0c3d76e05ca32b97a" title="Object (see idc_value_t::obj) ">VT_OBJ</a> IDC variables. </p>
<p>After this call the variable has a numeric value 0 </p>

</div>
</div>
<a class="anchor" id="a0299ec96d0aa99614658e5f454f79dcb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_idcv_class_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieves the IDC object class name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>qstring ptr for the class name. Can be NULL. </td></tr>
    <tr><td class="paramname">obj</td><td>class instance variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error code, eOk on success </dd></dl>

</div>
</div>
<a class="anchor" id="a7b48a42424deb9468cc50110287fa26d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_idcv_attr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>may_use_getattr</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get an object attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">res</td><td>buffer for the attribute value </td></tr>
    <tr><td class="paramname">obj</td><td>variable that holds an object reference. if obj is NULL it searches global variables, then user functions </td></tr>
    <tr><td class="paramname">attr</td><td>attribute name </td></tr>
    <tr><td class="paramname">may_use_getattr</td><td>may call getattr functions to calculate the attribute if it does not exist </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error code, eOk on success </dd></dl>

</div>
</div>
<a class="anchor" id="a87a30cd4d06292ca92e6f9ab807d38d9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_idcv_attr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>may_use_setattr</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set an object attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>variable that holds an object reference. if obj is NULL then it tries to modify a global variable with the attribute name </td></tr>
    <tr><td class="paramname">attr</td><td>attribute name </td></tr>
    <tr><td class="paramname">value</td><td>new attribute value </td></tr>
    <tr><td class="paramname">may_use_setattr</td><td>may call setattr functions for the class </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error code, eOk on success </dd></dl>

</div>
</div>
<a class="anchor" id="a68332368fb65396ff04d947609193ecf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> del_idcv_attr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>attr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete an object attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>variable that holds an object reference </td></tr>
    <tr><td class="paramname">attr</td><td>attribute name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error code, eOk on success </dd></dl>

</div>
</div>
<a class="anchor" id="ade9a5e709f46e338a0c348734b932a9e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_idcv_slice </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a>&#160;</td>
          <td class="paramname"><em>i1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a>&#160;</td>
          <td class="paramname"><em>i2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get slice. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">res</td><td>output variable that will contain the slice </td></tr>
    <tr><td class="paramname">v</td><td>input variable (string or object) </td></tr>
    <tr><td class="paramname">i1</td><td>slice start index </td></tr>
    <tr><td class="paramname">i2</td><td>slice end index (excluded) </td></tr>
    <tr><td class="paramname">flags</td><td><a class="el" href="group___v_a_r_s_l_i_c_e__.html">IDC variable slice flags</a> or 0 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>eOk if success </dd></dl>

</div>
</div>
<a class="anchor" id="a05aec2160a8e5679f47cd5da95792074"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_idcv_slice </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a>&#160;</td>
          <td class="paramname"><em>i1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a>&#160;</td>
          <td class="paramname"><em>i2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set slice. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>variable to modify (string or object) </td></tr>
    <tr><td class="paramname">i1</td><td>slice start index </td></tr>
    <tr><td class="paramname">i2</td><td>slice end index (excluded) </td></tr>
    <tr><td class="paramname">in</td><td>new value for the slice </td></tr>
    <tr><td class="paramname">flags</td><td><a class="el" href="group___v_a_r_s_l_i_c_e__.html">IDC variable slice flags</a> or 0 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>eOk on success </dd></dl>

</div>
</div>
<a class="anchor" id="a0af2e3c42b33c9508904590ac0bdc5d0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> idc_class_t* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> add_idc_class </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const idc_class_t *&#160;</td>
          <td class="paramname"><em>super</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new IDC class. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>name of the new class </td></tr>
    <tr><td class="paramname">super</td><td>the base class for the new class. if the new class is not based on any other class, pass NULL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the created class. If such a class already exists, a pointer to it will be returned. Pointers to other existing classes may be invalidated by this call. </dd></dl>

</div>
</div>
<a class="anchor" id="a6ec6fa9d02139d1bb211eadfe61bdbb9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> idc_class_t* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> find_idc_class </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find an existing IDC class by its name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>name of the class </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the class or NULL. The returned pointer is valid until a new call to <a class="el" href="expr_8hpp.html#a0af2e3c42b33c9508904590ac0bdc5d0" title="Create a new IDC class. ">add_idc_class()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab7933eb993762d3fd008fb397591e51b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_idc_method </td>
          <td>(</td>
          <td class="paramtype">idc_class_t *&#160;</td>
          <td class="paramname"><em>icls</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fullfuncname</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set an IDC class method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">icls</td><td>pointer to the class </td></tr>
    <tr><td class="paramname">fullfuncname</td><td>name of the function to call. use full method name: classname.funcname </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>success </td></tr>
    <tr><td class="paramname">false</td><td>the function could not be found </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9c5c712605ebd72d74598fce8b18f388"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_idc_dtor </td>
          <td>(</td>
          <td class="paramtype">idc_class_t *&#160;</td>
          <td class="paramname"><em>icls</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fullfuncname</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a destructor for an idc class. </p>
<p>The destructor is called before deleting any object of the specified class. Exceptions that escape the destructor are silently ignored, runtime errors too. </p>

</div>
</div>
<a class="anchor" id="a5fc339aecf348322a78ab301de9d581a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="classidc__value__t.html">idc_value_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> deref_idcv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>vref_flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dereference a <a class="el" href="group___v_t__.html#ga37d8aaba00cee490d64289da4a1a7bc2" title="Reference. ">VT_REF</a> variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>variable to dereference </td></tr>
    <tr><td class="paramname">vref_flags</td><td><a class="el" href="group___v_r_e_f__.html">Dereference IDC variable flags</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the dereference result or NULL. If returns NULL, qerrno is set to eExecBadRef "Illegal variable reference" </dd></dl>

</div>
</div>
<a class="anchor" id="a5e4c1356f3cd44c14a17b351b69ef74c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> create_idcv_ref </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a variable reference. </p>
<p>Currently only references to global variables can be created. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ref</td><td>ptr to the result </td></tr>
    <tr><td class="paramname">v</td><td>variable to reference </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="a4549a87a85faaabef74b553840afcc83"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="classidc__value__t.html">idc_value_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> add_idc_gvar </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add global IDC variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>name of the global variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the created variable or existing variable. NB: the returned pointer is valid until a new global var is added. </dd></dl>

</div>
</div>
<a class="anchor" id="a9b262ab8dcef942729e381b02d6aa27a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="classidc__value__t.html">idc_value_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> find_idc_gvar </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find an existing global IDC variable by its name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>name of the global variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the variable or NULL. NB: the returned pointer is valid until a new global var is added. FIXME: it is difficult to use this function in a thread safe manner </dd></dl>

</div>
</div>
<a class="anchor" id="a78f22d69dc8925cd8d718ffb81ffff92"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> add_idc_func </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structext__idcfunc__t.html">ext_idcfunc_t</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add an IDC function. </p>
<p>This function does not modify the predefined kernel functions. Example: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res)</div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;{</div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;  msg(&quot;myfunc is called with arg0=%a and arg1=%s\n&quot;, argv[0].num, argv[1].str);</div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;  res-&gt;num = 5;     // let&#39;s return 5</div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;  return eOk;</div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;}</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 };</div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;static const ext_idcfunc_t myfunc_desc = { &quot;MyFunc5&quot;, myfunc5, myfunc5_args, NULL, 0, EXTFUN_BASE };</div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;// after this:</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;add_idc_func(myfunc_desc);</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;// there is a new IDC function which can be called like this:</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;MyFunc5(0x123, &quot;test&quot;);</div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>function description block. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the function already exists, it will be replaced by the new function </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="aad1b28cb59aec9322500da906ba5b096"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> install_extlang </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structextlang__t.html">extlang_t</a> *&#160;</td>
          <td class="paramname"><em>el</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Install an external language interpreter. </p>
<p>Any previously registered interpreter will be automatically unregistered. The installed extlang can be used in <a class="el" href="expr_8hpp.html#a2cdf7578eb86ac0b1596bdcec38a4a7c" title="Selects the external language interpreter. ">select_extlang()</a>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">el</td><td>description of the new language. must point to static storage. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>extlang id; -1 means failure and will happen if the extlang has already been installed </dd></dl>

</div>
</div>
<a class="anchor" id="ad5b7e4d8b70c32623c55df7027bd7a60"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> remove_extlang </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structextlang__t.html">extlang_t</a> *&#160;</td>
          <td class="paramname"><em>el</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Uninstall an external language interpreter. </p>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="a2cdf7578eb86ac0b1596bdcec38a4a7c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> select_extlang </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structextlang__t.html">extlang_t</a> *&#160;</td>
          <td class="paramname"><em>el</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selects the external language interpreter. </p>
<p>The specified extlang must be registered before selecting it. It will be used to evaluate expressions entered in dialog boxes. It will also replace the <a class="el" href="expr_8hpp.html#aa38d428ec1a9b27bf455b6eb7795eec3" title="Compile and calculate an expression. ">eval_expr()</a> and <a class="el" href="expr_8hpp.html#ac61bd5c361351e8fdb913069d621ba28" title="Compile and calculate an expression. ">eval_expr_long()</a> functions. </p><dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="a4a916688d0b1d30c5a5c75466abea218"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_header_path </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>add</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set or append a header path. </p>
<p>IDA looks for the include files in the appended header paths, then in the ida executable directory. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>list of directories to add (separated by ';') may be NULL, in this case nothing is added </td></tr>
    <tr><td class="paramname">add</td><td>true: append. false: remove old paths. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>success </td></tr>
    <tr><td class="paramname">false</td><td>no memory </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aaef43e7cad9e3caedce85f1cc5ac212e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_idc_filename </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get full name of IDC file name. </p>
<p>Search for file in list of include directories, IDCPATH directory and the current directory. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>buffer for the answer </td></tr>
    <tr><td class="paramname">bufsize</td><td>size of buffer </td></tr>
    <tr><td class="paramname">file</td><td>file name without full path </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>NULL is file not found. otherwise returns pointer to buf </dd></dl>

</div>
</div>
<a class="anchor" id="a0a116fb5df3ad7a640c792210fbff845"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> exec_system_script </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>complain_if_no_file</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compile and execute "main" function from system file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>file name with IDC function(s). The file will be searched in the idc subdir of ida </td></tr>
    <tr><td class="paramname">complain_if_no_file</td><td><ul>
<li>1: display warning if the file is not found</li>
<li>0: don't complain if file doesn't exist </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>ok, file is compiled and executed </td></tr>
    <tr><td class="paramname">0</td><td>failure, compilation or execution error, warning is displayed </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac61bd5c361351e8fdb913069d621ba28"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> eval_expr_long </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a430639fcfd4601cd6cb310ae71481fe1">sval_t</a> *&#160;</td>
          <td class="paramname"><em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>where</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compile and calculate an expression. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">res</td><td>pointer to result. The result will be converted to 32/64bit number. Use <a class="el" href="expr_8hpp.html#aa38d428ec1a9b27bf455b6eb7795eec3" title="Compile and calculate an expression. ">eval_expr()</a> if you need the result of another type. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">where</td><td>the current linear address in the addressing space of the program being disassembled. it will be used to resolve names of local variables, etc. if not applicable, then should be <a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f" title="this value is used for &#39;bad address&#39; ">BADADDR</a> </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">line</td><td>a text line with IDC expression </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">errbuf</td><td>buffer for the error message </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>ok </td></tr>
    <tr><td class="paramname">false</td><td>error, see errbuf </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa38d428ec1a9b27bf455b6eb7795eec3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> eval_expr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>rv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>where</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compile and calculate an expression. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">rv</td><td>pointer to the result </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">where</td><td>the current linear address in the addressing space of the program being disassembled. If will be used to resolve names of local variables etc. if not applicable, then should be <a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f" title="this value is used for &#39;bad address&#39; ">BADADDR</a>. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">line</td><td>the expression to evaluate </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">errbuf</td><td>buffer for the error message </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>ok </td></tr>
    <tr><td class="paramname">false</td><td>error, see errbuf </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3a558cf09dfe23f7ae0fd1276e315716"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> eval_idc_expr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>rv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>where</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Same as <a class="el" href="expr_8hpp.html#aa38d428ec1a9b27bf455b6eb7795eec3" title="Compile and calculate an expression. ">eval_expr()</a>, but will always use the IDC interpreter regardless of the currently installed extlang. </p>

</div>
</div>
<a class="anchor" id="a7e34b9c60bef3fb2a039a8b5292723e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> compile_idc_snippet </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structidc__resolver__t.html">idc_resolver_t</a> *&#160;</td>
          <td class="paramname"><em>resolver</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>only_safe_funcs</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compile text with IDC statements. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">func</td><td>name of the function to create out of the snippet </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">text</td><td>text to compile </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">errbuf</td><td>buffer for the error message </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">resolver</td><td>callback object to get values of undefined variables This object will be called if IDC function contains references to undefined variables. May be NULL. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">only_safe_funcs</td><td>if true, any calls to functions without <a class="el" href="group___e_x_t_f_u_n__.html#ga705e9ca1426c11f7883f09387d4acc35" title="thread safe function. ">EXTFUN_SAFE</a> flag will lead to a compilation error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>ok </td></tr>
    <tr><td class="paramname">false</td><td>error, see errbuf </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8c1af5bfd4db2cdf456544986bc1a8ea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> call_idc_func </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a>&#160;</td>
          <td class="paramname"><em>args</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>argsnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structidc__resolver__t.html">idc_resolver_t</a> *&#160;</td>
          <td class="paramname"><em>resolver</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Execute an IDC function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>pointer to <a class="el" href="classidc__value__t.html" title="Class to hold idc values. ">idc_value_t</a> to hold the return value of the function. If execution fails, this variable will contain the exception information. Can be NULL if return value is not required. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">fname</td><td>function name. User-defined functions, built-in functions, and plugin-defined functions are accepted. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">args</td><td>array of parameters </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">argsnum</td><td>number of parameters to pass to 'fname'. This number should be equal to number of parameters the function expects. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">errbuf</td><td>buffer for the error message </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">resolver</td><td>callback object to get values of undefined variables This object will be called if IDC function contains references to undefined variables. May be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>ok </td></tr>
    <tr><td class="paramname">false</td><td>error, see errbuf </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aae1b1bdd03e885f369689f65093889ec"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool exec_idc_script </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a>&#160;</td>
          <td class="paramname"><em>args</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>argsnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compile and execute IDC function(s) from file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">result</td><td>ptr to <a class="el" href="classidc__value__t.html" title="Class to hold idc values. ">idc_value_t</a> to hold result of the function. If execution fails, this variable will contain the exception information. You may pass NULL if you are not interested in the returned value. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">path</td><td>text file containing text of IDC functions </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">func</td><td>function name to execute </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">args</td><td>array of parameters </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">argsnum</td><td>number of parameters to pass to 'fname' This number should be equal to number of parameters the function expects. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">errbuf</td><td>buffer for the error message </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>ok </td></tr>
    <tr><td class="paramname">false</td><td>error, see errbuf </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0d5b015e4dbb03a79b49835d1b820e61"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> eval_idc_snippet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structidc__resolver__t.html">idc_resolver_t</a> *&#160;</td>
          <td class="paramname"><em>resolver</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compile and execute IDC statements or expressions. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">result</td><td>ptr to <a class="el" href="classidc__value__t.html" title="Class to hold idc values. ">idc_value_t</a> to hold result of the function. If execution fails, this variable will contain the exception information. You may pass NULL if you are not interested in the returned value. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">line</td><td>body of IDC the function </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">errbuf</td><td>buffer for the error message </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">resolver</td><td>callback object to get values of undefined variables This object will be called if IDC function contains references to undefined variables. May be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>
<dl class="section note"><dt>Note</dt><dd>see also <a class="el" href="expr_8hpp.html#a3a558cf09dfe23f7ae0fd1276e315716" title="Same as eval_expr(), but will always use the IDC interpreter regardless of the currently installed ex...">eval_idc_expr()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afc5b47715c158ed9299a1a759408ce03"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> setup_lowcnd_regfuncs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="expr_8hpp.html#a4f81b59a59f911daa997940dc00d7ec0">idc_func_t</a> *&#160;</td>
          <td class="paramname"><em>getreg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="expr_8hpp.html#a4f81b59a59f911daa997940dc00d7ec0">idc_func_t</a> *&#160;</td>
          <td class="paramname"><em>setreg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Setup lowcnd callbacks to read/write registers. </p>
<p>These callbacks will be used by the idc engine to read/write registers while calculating low level breakpoint conditions for local debuggers. </p>

</div>
</div>
<a class="anchor" id="a6440cd402cee18e4139b7bc09d09c26d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool get_idptype_and_data </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>vtype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void **&#160;</td>
          <td class="paramname"><em>vdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classidc__value__t.html">idc_value_t</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extract type &amp; data from the <a class="el" href="classidc__value__t.html" title="Class to hold idc values. ">idc_value_t</a> instance that was passed to parse_config_value(). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vtype</td><td>pointer to storage that will hold the type (IDPOPT_T) </td></tr>
    <tr><td class="paramname">vdata</td><td>pointer to storage that contains the value (see IDPOPT_T for what type of data is pointed to.) </td></tr>
    <tr><td class="paramname">v</td><td>the value holder </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true in case of success, false if 'v' is of unexpected type </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
